{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "SwPR5OtnFWJ8"
   },
   "source": [
    "# Hyperbolic Busemann Learning with Ideal Prototypes\n",
    "\n",
    "Welcome to our third notebook for the ECCV 2022 Tutorial \"[Hyperbolic Representation Learning for Computer Vision](https://sites.google.com/view/hyperbolic-tutorial-eccv22)\"!\n",
    "\n",
    "\n",
    "**Open notebook:** \n",
    "[![View on Github](https://img.shields.io/static/v1.svg?logo=github&label=Repo&message=View%20On%20Github&color=lightgrey)](https://github.com/MinaGhadimiAtigh/hyperbolic_representation_learning/blob/main/notebooks/3_Hyperbolic_Busemann_Learning_with_Ideal_prototypes.ipynb)\n",
    "[![Open In Collab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/MinaGhadimiAtigh/hyperbolic_representation_learning/blob/main/notebooks/3_Hyperbolic_Busemann_Learning_with_Ideal_prototypes.ipynb)    \n",
    "\n",
    "**Authors:** Mina Ghadimi Atigh"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aCfrXSTxFv5T"
   },
   "source": [
    "In this notebook, you will go through [Hyperbolic Busemann Learning with Ideal prototypes](https://proceedings.neurips.cc/paper/2021/file/01259a0cb2431834302abe2df60a1327-Paper.pdf), NeurIPS 2021 paper. The code is available in [Github](https://github.com/MinaGhadimiAtigh/Hyperbolic-Busemann-Learning). \n",
    "\n",
    "Building on the success of deep learning with prototypes in Euclidean and hyperspherical spaces, a few recent works have proposed hyperbolic prototypes for classification. Such approaches enable effective learning in low-dimensional output spaces and can exploit hierarchical relations amongst classes, but require privileged information about class labels to position the hyperbolic prototypes. This paper strives to combine the best of both non-Euclidean worlds, namely efficient low-dimensional embeddings from hyperbolic prototypes and the knowledge-free positioning from hyperspherical prototypes.\n",
    "\n",
    "The paper makes three contributions. First, introduces a hyperbolic prototype network with\n",
    "class prototypes given as points on the ideal boundary of the Poincaré ball model of hyperbolic\n",
    "geometry. Second, proposes the penalized Busemann loss, which enables us to compute proximities\n",
    "between example outputs in hyperbolic space and prototypes at the ideal boundary, an impossible\n",
    "task for existing distance metrics, which put the ideal boundary at infinite distance from all other points in hyperbolic space. Third, we provide a theoretical link between our hyperbolic prototype approach and logistic regression."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "HJAVuCeWITy2"
   },
   "source": [
    "Let's start with importing the libraries and setting manual seed using `set_seed`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "id": "kjfsd9fZITlz"
   },
   "outputs": [],
   "source": [
    "## standard libraries\n",
    "import math\n",
    "import numpy as np\n",
    "from PIL import Image\n",
    "import warnings\n",
    "\n",
    "## Imports for plotting\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "## PyTorch\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch.optim as optim\n",
    "\n",
    "## PyTorch Torchvision\n",
    "import torchvision\n",
    "from torchvision import datasets, transforms\n",
    "\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "n6NpOY-SUWpQ",
    "outputId": "d975f7ae-5c42-4788-a64a-cc6c9350f413"
   },
   "outputs": [],
   "source": [
    "!wget -q https://raw.githubusercontent.com/MinaGhadimiAtigh/Hyperbolic-Busemann-Learning/master/models/cifar/resnet.py\n",
    "!pip install -q git+https://github.com/geoopt/geoopt.git\n",
    "import resnet\n",
    "import geoopt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "jIoMsAffH54o",
    "outputId": "7908bbc0-fe21-4339-dc54-b6d5ffab3785"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using device cuda:0\n"
     ]
    }
   ],
   "source": [
    "# Function for setting the seed\n",
    "def set_seed(seed):\n",
    "    np.random.seed(seed)\n",
    "    torch.manual_seed(seed)\n",
    "    if torch.cuda.is_available():\n",
    "        torch.cuda.manual_seed(seed)\n",
    "        torch.cuda.manual_seed_all(seed)\n",
    "set_seed(42)\n",
    "\n",
    "# Ensure that all operations are deterministic on GPU (if used) for reproducibility\n",
    "torch.backends.cudnn.determinstic = True\n",
    "torch.backends.cudnn.benchmark = False\n",
    "\n",
    "# Fetching the device that will be used throughout this notebook\n",
    "device = torch.device(\"cpu\") if not torch.cuda.is_available() else torch.device(\"cuda:0\")\n",
    "print(\"Using device\", device)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "tifGXyfwepZZ"
   },
   "source": [
    "## Prototype Learning - Ideal Prototypes\n",
    "\n",
    "The central idea of this paper is to position class prototypes at ideal points, which represent points at infinity in hyperbolic geometry. \n",
    "\n",
    "In the Poincare$'$ model, the ideal points form the boundary of the ball:\n",
    "\n",
    "\\begin{align}\n",
    "\\mathbb{I}_d = \\{\\mathbf{z} \\in \\mathbb{R}^d : z_1^2 + \\cdots + z_d^2 = 1 \\}.\n",
    "\\end{align}\n",
    "\n",
    "Using the same approach as \"[Hyperspherical Prototype Networks](https://proceedings.neurips.cc/paper/2019/file/02a32ad2669e6fe298e607fe7cc0e1a0-Paper.pdf)\", the paper places the prototypes uniformly on the ideal boundary of hyperbole to learn the prototypes.\n",
    "\n",
    "<!-- Thus, the set of ideal points of hyperbolic space $\\mathbb{B}_d$ is homeomorphic to the hypersphere $\\mathbb{S}_d$. As a consequence, any of the methods used for prototype embedding into $\\mathbb{S}_d$ can be used to embed prototypes into $\\mathbb{I}_d$. In particular, for $d=2$, prototypes can be placed uniformly on the unit sphere $\\mathbb{S}_2$, while class-agnostic prototype embedding based on separation can be used for $d\\geq3$ **TODO: should I add citation to HPN**. -->"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "id": "Dvfwcdflgw5s"
   },
   "outputs": [],
   "source": [
    "# HYPERPARAMETER\n",
    "\n",
    "## Number of classes to learn prototypes for \n",
    "num_classes = 10\n",
    "## dimension of the learned prototypes (d in the equation)\n",
    "dims = 2\n",
    "\n",
    "\n",
    "## Hyperparameters for prototype learning\n",
    "epochs = 1000\n",
    "learning_rate = 0.1\n",
    "momentum = 0.9\n",
    "\n",
    "# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
    "\n",
    "# When prototype dimension >=3, the goal is to find the largest cosine similarity between pairs of prototypes and minimize it.\n",
    "def prototype_loss(prototype):\n",
    "    # Dot product of normalized prototypes is cosine similarity.\n",
    "    product = torch.matmul(prototype, prototypes.t()) + 1\n",
    "    # Remove diagnonal from loss.\n",
    "    product -= 2. * torch.diag(torch.diag(product))\n",
    "    # Minimize maximum cosine similarity.\n",
    "    loss = product.max(dim=1)[0]\n",
    "\n",
    "    return loss.mean(), product.max()\n",
    "\n",
    "# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
    "\n",
    "# When prototype dimension=2, learning can be easily performed by splitting the unit-cirlce into equal parts, \n",
    "# seperated by an angle of 2π/n, which n stands for the number of classes. \n",
    "# Then, for each angle ψ, the coordinates are obtained as (cos ψ,sin ψ).\n",
    "\n",
    "def prototype_unify(num_classes):\n",
    "    single_angle = 2 * math.pi / num_classes\n",
    "    help_list = np.array(range(0, num_classes))\n",
    "    angles = (help_list * single_angle).reshape(-1, 1)\n",
    "\n",
    "    sin_points = np.sin(angles)\n",
    "    cos_points = np.cos(angles)\n",
    "\n",
    "    set_prototypes = torch.tensor(np.concatenate((cos_points, sin_points), axis=1))\n",
    "    return set_prototypes\n",
    "\n",
    "# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
    "\n",
    "# Now, prototype learning can be performed. \n",
    "# While for d=2 prototype learning consists of only splitting the unit-circle, for d>2, training and optimization is needed.\n",
    "if dims == 2:\n",
    "    prototypes = prototype_unify(num_classes)\n",
    "    prototypes = nn.Parameter(F.normalize(prototypes, p=2, dim=1))\n",
    "\n",
    "elif dims > 2:\n",
    "    prototypes = torch.randn(num_classes, dims)\n",
    "    prototypes = nn.Parameter(F.normalize(prototypes, p=2, dim=1))\n",
    "    optimizer = optim.SGD([prototypes], lr=learning_rate, momentum=momentum)\n",
    "    # Optimize for separation.\n",
    "    for i in range(epochs):\n",
    "        # Compute loss.\n",
    "        loss, _ = prototype_loss(prototypes)\n",
    "        # Update.\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        # Normalize prototypes again\n",
    "        prototypes = nn.Parameter(F.normalize(prototypes, p=2, dim=1))\n",
    "        optimizer = optim.SGD([prototypes], lr=learning_rate, momentum=momentum)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "utw9wN6j-AgI"
   },
   "source": [
    "Now the prototypes are ready. As you may have noticed, the prototype learning is class agnostic. It only requires the number of classes and dimensions of the prototypes, and there is no need for data.\n",
    "\n",
    "Let's visualize the prototypes when $d = 2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 482
    },
    "id": "bHgJmbIg_Tqh",
    "outputId": "9409e83b-e802-4a86-ecbd-773b3181faba"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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9KlTmPDTTxg3dqzsKEREZCLmzpmDenXrIvbVK9lRKAc4BWzAOnbsiN9//x0jR45EwYIFMfLLL2VHIiIiI9enb1+ULFkSzs7OsqNQDnAK2AiMGzcOv/zyC5b++Sd69uwpOw4RERmhLVu2wNvbG55lysiOQjrAKWAjMHnyZPTr1w+DBg5E8M6dsuMQEZGR2bljB3r26IElixfLjkI6whFAI6FWq/HJJ59g586d2LBhA1q1bi07EhERGYHdu3bhk08+Qdu2bbFu3TqYm/PoMWPAAmhEVCoV/P39sWfPHhw+cgTVq1eXHYmIiAzY3j170LVrV7Ru3RobNmyApaWl7EikIyyARkalUmHBggUYNGgQlGZmsuMQEZGB2r9vH7p06YIWLVogKCiI5c/IsAAaKSEEDhw8iKSkJDRt2lR2HCIiMiAHDhxAl86d0bRpU2zatAlWVlayI5GOsQAasS5dukClUmFjUJDsKEREZCBu3riB2rVro3HjxtiyZQvLn5FiATRib968gVarhbmFBRISEmBtbS07EhERGYDly5ahd+/e/LthxLgMjBGztraGra0tIu/cQcUKFbArOFh2JCIi0lO7goOxbetWWFpYYPDgwSx/Ro4F0AR4eHigdu3a+OSTT7B92zbZcYiISA9t2rQJmzdv5rXlTQSngE1EUlISevTogS1btmDFypXo3Lmz7EhERKQHnj17hvz580NotVAoFLCwsJAdifIARwBNhIWFBQIDA+Hv749ePXti1apVsiMREZFkq1atglf58gi7eROWlpYsfyaEy3mbEHNzc6xcuRI2NjYY0L8/YmJiMHr0aA73ExGZGCEEpk+fjvHff49+/fqhXLlysiNRHmMBNDFmZmZYsmQJ3N3d8f24cYiOisK06dNZAomITIRWq8XXX32F+fPn44cffsBPP/3EvwEmiAXQBCkUCkycOBFubm549uwZf/CJiExEYmIi+vXti82bN2PhwoUYPHiw7EgkCU8CIWi0WmzYsAFNmzaFk5OT7DhERJQLXr58CX9/f5w6eRJr165Fx44dZUciiXgSCOHlixcYNnQoVq1cKTsKERHlArVajVYtW+JSaCj279/P8kccAaT/REZGomixYlCr1YiPj4ednZ3sSEREpEPr1q2Dd40aqFSpkuwopAc4AkgA/lss2kypxJHDh1GxQgWcOXNGdiQiIsqhs2fP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\n",
      "text/plain": [
       "<Figure size 800x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "if dims == 2:\n",
    "\n",
    "    cmap = plt.get_cmap('gist_earth')\n",
    "    colors_list = [cmap(i) for i in np.linspace(0, 1, num_classes + 4)]\n",
    "\n",
    "    matplotlib.pyplot.figure(figsize=(8, 8))\n",
    "    ax = plt.gca()\n",
    "\n",
    "    for i in range(num_classes):\n",
    "        plt.plot(prototypes[i, 0].detach().numpy(), prototypes[i, 1].detach().numpy(), markersize = 10,  marker = 'D', linestyle='none', color = colors_list[i])\n",
    "\n",
    "    ax.add_patch(plt.Circle((0, 0), 1, fill=True, ec='black', fc='#f8f9f9', linestyle='-.', linewidth=1, zorder=0))\n",
    "\n",
    "    ax.spines['bottom'].set_color('white')\n",
    "    ax.spines['top'].set_color('white')\n",
    "    ax.spines['right'].set_color('white')\n",
    "    ax.spines['left'].set_color('white')\n",
    "\n",
    "    ax.tick_params(\n",
    "        axis='both',   # changes apply to the x-axis\n",
    "        which='both',  # both major and minor ticks are affected\n",
    "        bottom=False,  # ticks along the bottom edge are off\n",
    "        top=False,     # ticks along the top edge are off\n",
    "        left=False,\n",
    "        labelbottom=False)\n",
    "\n",
    "    # Turn off tick labels\n",
    "    ax.set_yticklabels([])\n",
    "    ax.set_xticklabels([])\n",
    "    plt.title('Each point is the prototype learned for one classes.')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "AGH57jJT_Cwc"
   },
   "source": [
    "Throught this tutorial, we will perform prototype learning using the Ideal prototypes. To this end, `CIFAR10` dataset is selected.\n",
    "\n",
    "The first step is downloading and loading the dataset and dataloader."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "id": "9q5tM9zg_800"
   },
   "outputs": [],
   "source": [
    "## Path to save the data \n",
    "basedir = '.'\n",
    "\n",
    "## batch size needed to define the dataloader\n",
    "batch_size = 128"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 84,
     "referenced_widgets": [
      "bdc697b7a035480e9b8cdc85a8005be5",
      "da07729441944c1b977f077652ab913a",
      "4ba963b36e8a4151bb78f03aa6fe816a",
      "a40ed2ac9f9d4377aee61318a89696e9",
      "163fd95495aa466780df9c8a231a8eca",
      "55b0bdc20df549108a857aefbf04d06e",
      "d33461ab6e5e4436b5962f102a60ee90",
      "18bdf107459f4fc58f1340def51f9bc9",
      "451eb18eed914957aa373e118d3c2356",
      "0a464db85bfe4ec9a1a9295a26dbe978",
      "b604838025ed4b8db8ac5c63cb1c3d8d"
     ]
    },
    "id": "lcKE4_tYIHuJ",
    "outputId": "4889d5fa-9dfa-4cc0-a0b6-814f6f664db5"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to .cifar10/cifar-10-python.tar.gz\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100.0%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting .cifar10/cifar-10-python.tar.gz to .cifar10/\n"
     ]
    }
   ],
   "source": [
    "mrgb = [0.507, 0.487, 0.441]\n",
    "srgb = [0.267, 0.256, 0.276]\n",
    "\n",
    "\n",
    "kwargs = {'num_workers': 32, 'pin_memory': True}\n",
    "normalize = transforms.Normalize(mean=mrgb, std=srgb)\n",
    "\n",
    "classes = ['plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']\n",
    "\n",
    "# Training Dataset\n",
    "train_dataset = datasets.CIFAR10(root=basedir + 'cifar10/', train=True,\n",
    "                                 transform=transforms.Compose([transforms.RandomCrop(32, 4),\n",
    "                                                               transforms.RandomHorizontalFlip(),\n",
    "                                                               transforms.ToTensor(),\n",
    "                                                               normalize,\n",
    "                                                               ]), download=True)\n",
    "trainloader = torch.utils.data.DataLoader(train_dataset,batch_size=batch_size, shuffle=True, **kwargs)\n",
    "trainloader.dataset.train_labels = torch.from_numpy(np.array(trainloader.dataset.targets))\n",
    "\n",
    "# Testing Dataset\n",
    "test_dataset = datasets.CIFAR10(root=basedir + 'cifar10/', train=False,\n",
    "                                transform=transforms.Compose([transforms.ToTensor(),normalize,]))\n",
    "testloader = torch.utils.data.DataLoader(test_dataset,batch_size=batch_size, shuffle=True, **kwargs)\n",
    "testloader.dataset.test_labels = torch.from_numpy(np.array(testloader.dataset.targets))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Tpt3PK7TFG8l"
   },
   "source": [
    "Before starting the main task, let's check how images from the dataset look like."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 181
    },
    "id": "WQNJwXvYAhVk",
    "outputId": "3e1075f1-d772-4777-ff24-1649f3a41956"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABOwAAADNCAYAAAAL+u8FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACJGklEQVR4nO29ebRld1nn/ey9zzzfeapbc1WSyjyQMCQhzERojRFi4ysm3QINwdZ+u6VZNo6NyEJEXEsRbVDoJkCjTIIoBCRBZEiCZB4qNdetunXne+6Zx73fP1jU6/N8f6SKsqo46vezFmvx23nOPnv/5r3rns/jRVEUCSGEEEIIIYQQQgghZCDwf9QXQAghhBBCCCGEEEII+f/hCztCCCGEEEIIIYQQQgYIvrAjhBBCCCGEEEIIIWSA4As7QgghhBBCCCGEEEIGCL6wI4QQQgghhBBCCCFkgOALO0IIIYQQQgghhBBCBgi+sCOEEEIIIYQQQgghZIDgCztCCCGEEEIIIYQQQgYIvrAjhBBCCCGEEEIIIWSA4As7QgghhJCzzL333iue58m99977o74UJ/v27ZOXvvSlUiwWxfM8+exnP/ujviRCCCGEEPJP4As7QgghhJxXPvzhD4vneT/wf9/+9rd/1Jf4r57bb79dHn30UXnHO94hH/nIR+Saa655xvhKpSK/9Vu/JZdffrnkcjlJp9NyySWXyFvf+laZn58/GXfHHXdILpdTn73pppt+YFs/9dRTKvbaa68Vz/Pk/e9/v/M6bN+JxWIyMzMjd9xxhxw/fhzi77//frnzzjvl6quvlng8Lp7nPeN9/tmf/ZlcdNFFkkqlZNeuXfKHf/iHzxhPCCGEEHKuiP2oL4AQQggh/zb5n//zf8q2bdvg+M6dO38EV/Nvh2azKd/61rfkbW97m/zCL/zCKeMPHjwoL37xi+Xo0aPy6le/Wt7whjdIIpGQRx55RP7sz/5MPvOZz8jTTz/9jOfYtGmTvPOd74Tj09PTJ///vn375IEHHpCtW7fKRz/6UXnTm970A8/3/b7TarXk29/+tnz4wx+Wf/iHf5DHHntMUqnUybi/+Zu/kQ9+8INy2WWXyfbt25/xOv/0T/9U3vjGN8pP/dRPyX/9r/9Vvv71r8sv/uIvSqPRkLe+9a3PeH+EEEIIIWcbvrAjhBBCyI+Em2+++ZR/2UXOPsvLyyIiUiqVThnb6/Xk1ltvlcXFRbn33nvl+uuvV//9He94h7zrXe865XmKxaL87M/+7DPG3HXXXTI+Pi7vec975FWvepUcPnxYtm7d6oz9p33nda97nYyOjsq73vUu+dznPie33Xbbybg3velN8ta3vlXS6bT8wi/8wg98YddsNuVtb3ubvOIVr5BPfvKTIiLy+te/XsIwlLe//e3yhje8QYaGhk55n4QQQgghZwv+JJYQQgghA8lv/MZviO/78nd/93fq+Pf/wuvhhx8WEZFOpyO//uu/LldffbUUi0XJZrNyww03yD333KM+d/jwYfE8T37v935P3ve+98n27dslk8nIS1/6Upmbm5MoiuTtb3+7bNq0SdLptPzET/yErK2tqXNs3bpVXvnKV8rdd98tV1xxhaRSKdmzZ498+tOfPq17uu++++TlL3+5FItFyWQy8vznP1++8Y1vqJhqtSr/5b/8F9m6daskk0kZHx+Xl7zkJfLd7373lOd/8MEH5eabb5ZCoSC5XE5e9KIXqZ8Y/+Zv/qZs2bJFRETe8pa3iOd5P/ClmIjIpz71KXn44YflbW97G7ysExEpFAryjne847Tu/VR87GMfk1e96lXyyle+UorFonzsYx877c/ecMMNIiJy4MABdXxiYkLS6fQpP3/PPffI6uqq3Hnnner4m9/8ZqnX6/KFL3zhtK+FEEIIIeRswBd2hBBCCPmRsLGxISsrK+p/q6urJ//7r/7qr8oVV1whP//zPy/ValVERL70pS/JBz7wAfn1X/91ufzyy0Xke361D37wg3LTTTfJu971LvnN3/xNWV5elpe97GXy0EMPwfd+9KMflT/+4z+W//yf/7P8t//23+RrX/ua3HbbbfKrv/qr8sUvflHe+ta3yhve8Ab5/Oc/L7/8y78Mn9+3b5/89E//tNx8883yzne+U2KxmLz61a+WL3/5y894v1/96lflxhtvlEqlIr/xG78hv/M7vyPlclle+MIXyv33338y7o1vfKO8//3vl5/6qZ+SP/7jP5Zf/uVflnQ6LU8++eQznv/xxx+XG264QR5++GH57//9v8uv/dqvyaFDh+Smm26S++67T0REbr31Vnnve98rIiKvec1r5CMf+Yj8wR/8wQ885+c+9zkREXnta1/7jN99Kvr9PrR1rVY7+d/vu+8+2b9/v7zmNa+RRCIht956q3z0ox897fMfPnxYROSM/wruwQcfFBGBv/i8+uqrxff9k/+dEEIIIeS8ERFCCCGEnEc+9KEPRSLi/F8ymVSxjz76aJRIJKLXve510fr6ejQzMxNdc801UbfbPRnT6/WidrutPre+vh5NTExE//E//seTxw4dOhSJSDQ2NhaVy+WTx3/lV34lEpHo8ssvV+d9zWteEyUSiajVap08tmXLlkhEok996lMnj21sbERTU1PRlVdeefLYPffcE4lIdM8990RRFEVhGEa7du2KXvayl0VhGJ6MazQa0bZt26KXvOQlJ48Vi8XozW9+82nX5/e55ZZbokQiER04cODksfn5+Sifz0c33ngj1MO73/3uU57zyiuvjIrF4mlfw+233x5ls1l17PnPf76zrW+//faTMb/wC78Qzc7Onqybu+++OxKR6MEHH1Tn+n7f+cpXvhItLy9Hc3Nz0Sc/+clobGwsSiaT0dzc3A+8tje/+c3RD9r6vvnNb46CIHD+t7Gxsejf//t/fxp3TwghhBBy9qDDjhBCCCE/Et73vvfJ7t271bEgCFT5kksukd/6rd+SX/mVX5FHHnlEVlZW5O6775ZYLKY+8/3PhWEo5XJZwjCUa665xvkz0le/+tVSLBZPlq+77joREfnZn/1Zdd7rrrtOPv7xj8vx48dl+/btJ49PT0/LT/7kT54sFwoF+bmf+zl517veJQsLCzI5OQnf+dBDD8m+ffvkV3/1V9VfEYqIvOhFL5KPfOQjEoah+L4vpVJJ7rvvPpmfn1dJGZ6Jfr8vd999t9xyyy3qWqempuRnfuZn5AMf+IBUKhUpFAqndb7vU6lUJJ/P/1CfcbF161b5wAc+oI59/956vZ584hOfkNtvv/1kFtcXvvCFMj4+Lh/96EfliiuugPO9+MUvhvPfddddsmnTpjO6vmazKYlEwvnfUqmUNJvNMzovIYQQQsiZwhd2hBBCCPmRcO21155W0om3vOUt8n//7/+V+++/X37nd35H9uzZAzH/+3//b3nPe94jTz31lHS73ZPHXVloN2/erMrff3k3OzvrPL6+vq6O79y58+SLpe/z/RePhw8fdr6w27dvn4iI3H777e6blO/9RHhoaEh+93d/V26//XaZnZ2Vq6++Wn7sx35Mfu7nfk69iLMsLy9Lo9GQCy64AP7bRRddJGEYytzcnFx88cU/8BwuCoWCHDx48If6jItsNgsv2b7P3XffLcvLy3LttdfK/v37Tx5/wQteIB//+MflXe96l/i+trh8/2XvxsaG/Pmf/7n8/d//vSSTyTO+vnQ6LZ1Ox/nfWq3WaXnwCCGEEELOJnxhRwghhJCB5uDBgydfeD366KPw3++66y6544475JZbbpG3vOUtMj4+LkEQyDvf+U5IQiCCf8V3quNRFP0zrv57hGEoIiLvfve7nX8xJiKSy+VEROS2226TG264QT7zmc/I3XffLe9+97vlXe96l3z605+Wm2+++Z99LT8MF154oTz44IMyNzcHLzTPFt931f3T7K7/lK997Wvyghe8QB37py97b7nlFrn++uvlZ37mZ2Tv3r0n6/GHYWpqSvr9viwtLcn4+PjJ451OR1ZXV0/7Lx0JIYQQQs4WTDpBCCGEkIElDEO54447pFAoyP/4H/9DPv7xj0NG1k9+8pOyfft2+fSnPy2vfe1r5WUve5m8+MUvllardU6uaf/+/fAS7+mnnxYR+YEZV3fs2CEi3/uLtRe/+MXO/8Xj8ZPxU1NTcuedd8pnP/tZOXTokIyMjDxjNtaxsTHJZDKyd+9e+G9PPfWU+L5/Ri/c/t2/+3ci8r2XoueCer0uf/VXfyU//dM/LX/5l38J/5uamjpl8onvv5ydn5+XP/qjPzqj6/j+S9TvfOc76vh3vvMdCcPwB75kJYQQQgg5V/CFHSGEEEIGlt///d+Xb37zm/K//tf/kre//e3y3Oc+V970pjfJysrKyZjv/2XcP32Jdt9998m3vvWtc3JN8/Pz8pnPfOZkuVKpyP/5P/9HrrjiCufPYUW+l210x44d8nu/93sqO+r3WV5eFpHvueg2NjbUfxsfH5fp6Wlpt9s/8JqCIJCXvvSl8ld/9VcnM6aKiCwuLsrHPvYxuf76639of52IyKte9Sq59NJL5R3veIezPqvVqrztbW/7oc/7fT7zmc9IvV6XN7/5zfKqV70K/vfKV75SPvWpTz3jvYuI3HTTTXLttdfKH/zBH5zRi9oXvvCFMjw8LO9///vV8fe///2SyWTkFa94xQ99TkIIIYSQfw78SSwhhBBCfiT87d/+rTz11FNw/LnPfa5s375dnnzySfm1X/s1ueOOO07+pdeHP/xhueKKK+TOO++Uv/iLvxARkVe+8pXy6U9/Wn7yJ39SXvGKV8ihQ4fkT/7kT2TPnj3Ol2P/XHbv3i0///M/Lw888IBMTEzIn//5n8vi4qJ86EMf+oGf8X1fPvjBD8rNN98sF198sfyH//AfZGZmRo4fPy733HOPFAoF+fznPy/ValU2bdokr3rVq+Tyyy+XXC4nX/nKV+SBBx6Q97znPc94Xb/9278tX/7yl+X666+XO++8U2KxmPzpn/6ptNtt+d3f/d0zutd4PC6f/vSn5cUvfrHceOONctttt8nznvc8icfj8vjjj8vHPvYxGRoaesa//nsmPvrRj8rIyIg897nPdf73H//xH5cPfOAD8oUvfEFuvfXWZzzXW97yFnn1q18tH/7wh+WNb3yjiIgcOXJEPvKRj4jI///Xc7/9278tIiJbtmyR1772tSLyPYfd29/+dnnzm98sr371q+VlL3uZfP3rX5e77rpL3vGOd8jw8PAZ3R8hhBBCyJnCF3aEEEII+ZHw67/+687jH/rQh2TLli1y++23y+joqPzBH/zByf+2a9cueec73ym/9Eu/JH/xF38ht912m9xxxx2ysLAgf/qnfypf+tKXZM+ePXLXXXfJX/7lX8q999571q97165d8od/+Ifylre8Rfbu3Svbtm2TT3ziE/Kyl73sGT930003ybe+9S15+9vfLn/0R38ktVpNJicn5brrrpP/9J/+k4iIZDIZufPOO+Xuu++WT3/60xKGoezcuVP++I//WN70pjc94/kvvvhi+frXvy6/8iu/Iu985zslDEO57rrr5K677jqZCfdM2Llzpzz00EPy3ve+Vz7zmc/IZz/72ZPX9brXvU5+8Rd/8YzOu7S0JF/5ylfkNa95zQ/0B77oRS+STCYjd9111ylf2N16660n/4rx9a9/vQRBIIcOHZJf+7VfU3HfLz//+c8/+cJOROTOO++UeDwu73nPe+Rzn/uczM7Oynvf+175pV/6pTO6P0IIIYSQfw5edDZMyoQQQggh/wbYunWrXHLJJfLXf/3XP+pLIYQQQggh/4qhw44QQgghhBBCCCGEkAGCL+wIIYQQQgghhBBCCBkg+MKOEEIIIYQQQgghhJABgg47QgghhBBCCCGEEEIGCP6FHSGEEEIIIYQQQgghAwRf2BFCCCGEEEIIIYQQMkDwhR0hhBBCCCGEEEIIIQNE7HQD5+fnz+V1EEIIIYQQQgghhBDyr5rp6enTiuNf2BFC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\n",
      "text/plain": [
       "<Figure size 1600x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  frog          truck         truck         deer          car           car           bird          horse        \n"
     ]
    }
   ],
   "source": [
    "NUM_IMAGES = 8\n",
    "images = [train_dataset[idx][0] for idx in range(NUM_IMAGES)]\n",
    "labels = [train_dataset.targets[idx] for idx in range(NUM_IMAGES)]\n",
    "\n",
    "img_grid = torchvision.utils.make_grid(images, nrow=8, normalize=True, pad_value=0.9)\n",
    "img_grid = img_grid.permute(1, 2, 0)\n",
    "\n",
    "plt.figure(figsize=(16,8))\n",
    "plt.title(\"Examples of CIFAR10\")\n",
    "plt.imshow(img_grid)\n",
    "plt.axis('off')\n",
    "plt.show()\n",
    "plt.close()\n",
    "print('  ' + ' '.join(f'{classes[labels[j]]:13s}' for j in range(NUM_IMAGES)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "rqUHnQq8N-ng"
   },
   "source": [
    "## Hyperbolic Image Classification using Ideal prototypes\n",
    "\n",
    "The goal of hyperbolic Busemann learning with Ideal prototypes is to learn hyperbolic representations for the given data close to the corresponding ideal prototype. Initially, a Euclidean model, i.e., `ResNet`, is used to extract Euclidean representations. Then, the Euclidean representations are projected to the Hyperbolic space using `Exponential Map`.\n",
    "\n",
    "Once the hyperbolic representations are ready, it's time to calculate the distance to the corresponding Ideal prototype and minimize it. Since the prototypes are on the ideal boundary of hyperbolic space, the Poincare distance results in infinity and cannot be calculated. Therefore, `Penalized Busemann Loss` is proposed in the paper.\n",
    "\n",
    "Given `p` as the prototype and `z` as the hyperbolic data representation,  `Busemann function` and `Penalized Busemann Loss` are calculated using $b_p(z)$ and $\\ell(z, p)$,\n",
    "\n",
    "\\begin{align}\n",
    "b_p(z) = \\log \\frac{||p - z||^2}{(1 - ||z||^2)}\n",
    "\\end{align}\n",
    "\n",
    "\\begin{align}\n",
    "\\ell(z, p) = b_p(z) - \\phi(d) \\cdot \\log(1 - ||z||^2),\n",
    "\\end{align}\n",
    "\n",
    "with $\\phi(d)$ a scaling factor for the penalty term which is a function of the dimension of the hyperbolic space. In the penalized Busemann loss, $\\phi(d)$ governs the amount of regularization. The paper shows that this\n",
    "function should be linear in the number of dimensions. Therefore, $\\phi(d)$ is defined as $s.d$, which $s$ is named as `mult` in the code."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "id": "wInKBdPKav-P"
   },
   "outputs": [],
   "source": [
    "# Hyperbolic hyperparameters\n",
    "c = 1.0\n",
    "mult = 0.75"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "id": "CuAsX0O8asBN"
   },
   "outputs": [],
   "source": [
    "class PeBusePenalty(nn.Module):\n",
    "    def __init__(self, dimension, mult=1.0):\n",
    "        super(PeBusePenalty, self).__init__()\n",
    "        self.dimension = dimension\n",
    "        self.penalty_constant = mult * self.dimension\n",
    "\n",
    "    def forward(self, p, g):\n",
    "        # first part of loss\n",
    "        prediction_difference = g - p\n",
    "        difference_norm = torch.norm(prediction_difference, dim=1)\n",
    "        difference_log = 2 * torch.log(difference_norm)\n",
    "\n",
    "        # second part of loss\n",
    "        data_norm = torch.norm(p, dim=1)\n",
    "        proto_difference = (1 - data_norm.pow(2) + 1e-6)\n",
    "        proto_log = (1 + self.penalty_constant) * torch.log(proto_difference)\n",
    "\n",
    "        # second part of loss\n",
    "        constant_loss = self.penalty_constant * math.log(2)\n",
    "\n",
    "        one_loss = difference_log - proto_log + constant_loss\n",
    "        total_loss = torch.mean(one_loss)\n",
    "\n",
    "        return total_loss"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "EGlpJdJ6bAk7"
   },
   "source": [
    "The `dims` used here is the prototype and output dimensions, initialized when learning prototypes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "id": "M5X-dGmUa-oX"
   },
   "outputs": [],
   "source": [
    "f_loss = PeBusePenalty(dims, mult)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "713RQg9cV919"
   },
   "source": [
    "Let's first initialize hyperparamers and optimizers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "id": "QxbjlGqvY713"
   },
   "outputs": [],
   "source": [
    "# General hyperparameters\n",
    "learning_rate = 0.0005\n",
    "decay = 0.00005\n",
    "epochs = 100\n",
    "drop1 = 1000\n",
    "drop2 = 1100\n",
    "do_decay = True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "R_bmLSetZkPk"
   },
   "source": [
    "`ResNet32` is initialized and used to extract Euclidean representations of the input data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "id": "XiPoO9kdUf3l"
   },
   "outputs": [],
   "source": [
    "model = resnet.ResNet(32, dims, 1, prototypes.float())\n",
    "model = model.to(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "id": "a-e4qqIbduis"
   },
   "outputs": [],
   "source": [
    "# Optimizer\n",
    "optimizer = optim.Adam(model.parameters(), lr=learning_rate, weight_decay=decay)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "gdAJCxb0bTIB"
   },
   "source": [
    "Now, everything is ready to start training."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "KClkIxC3VYI_",
    "outputId": "c678a203-3ccc-4135-f543-510c3e4f8f4d"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training started:\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 10 :\n",
      "Training Loss:0.004980027570724487 , Training Accuracy: 0.64096\n",
      "Val Loss:0.005297535902261734 , Val Accuracy: 0.6272\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 20 :\n",
      "Training Loss:0.004105883414745331 , Training Accuracy: 0.78252\n",
      "Val Loss:0.004605498462915421 , Val Accuracy: 0.7443\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 30 :\n",
      "Training Loss:0.0037260478436946867 , Training Accuracy: 0.83498\n",
      "Val Loss:0.004251863679289818 , Val Accuracy: 0.7945\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 40 :\n",
      "Training Loss:0.003505309413075447 , Training Accuracy: 0.86814\n",
      "Val Loss:0.0040145975530147555 , Val Accuracy: 0.8232\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 50 :\n",
      "Training Loss:0.0033344823771715164 , Training Accuracy: 0.88842\n",
      "Val Loss:0.003981673476099968 , Val Accuracy: 0.8303\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 60 :\n",
      "Training Loss:0.0032073852705955504 , Training Accuracy: 0.90586\n",
      "Val Loss:0.004107096675038338 , Val Accuracy: 0.8331\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 70 :\n",
      "Training Loss:0.00313653585255146 , Training Accuracy: 0.91532\n",
      "Val Loss:0.003802865654230118 , Val Accuracy: 0.8562\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 80 :\n",
      "Training Loss:0.0030833755123615266 , Training Accuracy: 0.9211\n",
      "Val Loss:0.0038534139961004256 , Val Accuracy: 0.8557\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 90 :\n",
      "Training Loss:0.0030213140720129015 , Training Accuracy: 0.92978\n",
      "Val Loss:0.003996825054287911 , Val Accuracy: 0.8489\n",
      "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
      "Epoch 99 :\n",
      "Training Loss:0.002990082864165306 , Training Accuracy: 0.93196\n",
      "Val Loss:0.0038682255685329437 , Val Accuracy: 0.8623\n"
     ]
    }
   ],
   "source": [
    "manifold = geoopt.PoincareBall(c=c)\n",
    "print('Training started:')\n",
    "for i in range(epochs):\n",
    "    # Learning rate decay.\n",
    "    if i in [drop1, drop2] and do_decay:\n",
    "        learning_rate *= 0.1\n",
    "        for param_group in optimizer.param_groups:\n",
    "            param_group['lr'] = learning_rate\n",
    "    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
    "    avg_loss = 0\n",
    "    sum_loss = 0\n",
    "    count = 0\n",
    "    acc = 0\n",
    "    model.train()\n",
    "    for bidx, (data, target) in enumerate(trainloader):\n",
    "        target_tmp = target.to(device)\n",
    "        target = model.polars[target]\n",
    "        \n",
    "        data = torch.autograd.Variable(data).to(device)\n",
    "        target = torch.autograd.Variable(target).to(device)\n",
    "\n",
    "        output = model(data)\n",
    "        output_exp_map = manifold.expmap0(output)\n",
    "\n",
    "        loss_func = f_loss(output_exp_map, target)\n",
    "\n",
    "\n",
    "        optimizer.zero_grad()\n",
    "        loss_func.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        sum_loss += loss_func.item()\n",
    "        count += 1.\n",
    "\n",
    "        output = model.predict(output_exp_map).float()\n",
    "        pred = output.max(1, keepdim=True)[1]\n",
    "        acc += pred.eq(target_tmp.view_as(pred)).sum().item()\n",
    "\n",
    "    avg_loss = sum_loss / float(len(trainloader.dataset))\n",
    "    avg_acc = acc / float(len(trainloader.dataset))\n",
    "    \n",
    "    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n",
    "    if i != 0 and (i % 10 == 0 or i == epochs - 1):\n",
    "        valid_acc = 0\n",
    "        valid_loss = 0\n",
    "        model.eval()\n",
    "        with torch.no_grad():\n",
    "            for data_val, target_val in testloader:\n",
    "                data_val = torch.autograd.Variable(data_val).to(device)\n",
    "                target_val = torch.autograd.Variable(target_val).to(device)\n",
    "                target_loss_val = model.polars[target_val]\n",
    "\n",
    "                output_val = model(data_val).float()\n",
    "                output_val_exp_map = manifold.expmap0(output_val)\n",
    "\n",
    "                output_val = model.predict(output_val_exp_map).float()\n",
    "                pred_val = output_val.max(1, keepdim=True)[1]\n",
    "                valid_acc += pred_val.eq(target_val.view_as(pred_val)).sum().item()\n",
    "\n",
    "                valid_loss += f_loss(output_val_exp_map, target_loss_val.to(device)).item()\n",
    "            \n",
    "        len_test = len(testloader.dataset)\n",
    "\n",
    "        valid_avg_acc = valid_acc / float(len_test)\n",
    "        valid_avg_loss = valid_loss / float(len_test)\n",
    "        print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')\n",
    "        print('Epoch '+str(i)+' :' )\n",
    "        print('Training Loss:' + str(avg_loss)+' , Training Accuracy: '+str(avg_acc))\n",
    "        print('Val Loss:' + str(valid_avg_loss)+' , Val Accuracy: '+str(valid_avg_acc)) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "FF_xsFR1PYvf"
   },
   "source": [
    "Let's visualize the output space."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "id": "-cYLPDbsS69H"
   },
   "outputs": [],
   "source": [
    "output_vectors = []\n",
    "gt_labels = []\n",
    "\n",
    "model.eval()\n",
    "with torch.no_grad():\n",
    "    for data_val, target_val in testloader:\n",
    "        data_val = torch.autograd.Variable(data_val).to(device)\n",
    "        target_val = torch.autograd.Variable(target_val).to(device)\n",
    "        target_loss_val = model.polars[target_val]\n",
    "\n",
    "        output_val = model(data_val).float()\n",
    "        output_val_exp_map = manifold.expmap0(output_val)\n",
    "\n",
    "        output_vectors.extend(output_val_exp_map.cpu().numpy().tolist())\n",
    "        gt_labels.extend(target_val.cpu().numpy().tolist())\n",
    "    \n",
    "output_vectors = np.array(output_vectors)\n",
    "gt_labels = np.array(gt_labels).reshape(-1, 1)\n",
    "# Let's select a subset of the data!\n",
    "subset_index = np.random.choice(np.array(range(0,gt_labels.shape[0])), 1000, replace=False)\n",
    "\n",
    "output_vectors_small = output_vectors[subset_index, :]\n",
    "gt_labels_small = gt_labels[subset_index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 482
    },
    "id": "nPwJf_i8QWsF",
    "outputId": "8f05fbd4-1354-4475-dc4f-bad6e7255dd4"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 800x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cmap = plt.get_cmap('gist_earth')\n",
    "colors_list = [cmap(i) for i in np.linspace(0, 1, num_classes + 4)]\n",
    "\n",
    "if dims == 2:\n",
    "    matplotlib.pyplot.figure(figsize=(8, 8))\n",
    "    ax = plt.gca()\n",
    "\n",
    "    for i in range(num_classes):\n",
    "        plt.plot(prototypes[i, 0].detach().numpy(), prototypes[i, 1].detach().numpy(), markersize = 10,  marker = 'D', linestyle='none', color = colors_list[i])\n",
    "\n",
    "        output_vectors_small_i = output_vectors_small[np.where(gt_labels_small == i)[0], :]\n",
    "        ax.scatter(output_vectors_small_i[:, 0], output_vectors_small_i[:, 1], color = colors_list[i])\n",
    "\n",
    "    ax.add_patch(plt.Circle((0, 0), 1, fill=True, ec='black', fc='#f8f9f9', linestyle='-.', linewidth=1, zorder=0))\n",
    "\n",
    "    ax.spines['bottom'].set_color('white')\n",
    "    ax.spines['top'].set_color('white')\n",
    "    ax.spines['right'].set_color('white')\n",
    "    ax.spines['left'].set_color('white')\n",
    "\n",
    "    ax.tick_params(\n",
    "        axis='both',   # changes apply to the x-axis\n",
    "        which='both',  # both major and minor ticks are affected\n",
    "        bottom=False,  # ticks along the bottom edge are off\n",
    "        top=False,     # ticks along the top edge are off\n",
    "        left=False,\n",
    "        labelbottom=False)\n",
    "\n",
    "    # Turn off tick labels\n",
    "    ax.set_yticklabels([])\n",
    "    ax.set_xticklabels([])\n",
    "    plt.title('Each point is the prototype learned for one classes.')\n",
    "    plt.show()"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "provenance": []
  },
  "gpuClass": "standard",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.13"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "0a464db85bfe4ec9a1a9295a26dbe978": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "163fd95495aa466780df9c8a231a8eca": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "18bdf107459f4fc58f1340def51f9bc9": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "451eb18eed914957aa373e118d3c2356": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "4ba963b36e8a4151bb78f03aa6fe816a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_18bdf107459f4fc58f1340def51f9bc9",
      "max": 170498071,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_451eb18eed914957aa373e118d3c2356",
      "value": 170498071
     }
    },
    "55b0bdc20df549108a857aefbf04d06e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a40ed2ac9f9d4377aee61318a89696e9": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0a464db85bfe4ec9a1a9295a26dbe978",
      "placeholder": "​",
      "style": "IPY_MODEL_b604838025ed4b8db8ac5c63cb1c3d8d",
      "value": " 170498071/170498071 [00:13&lt;00:00, 13459255.73it/s]"
     }
    },
    "b604838025ed4b8db8ac5c63cb1c3d8d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "bdc697b7a035480e9b8cdc85a8005be5": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_da07729441944c1b977f077652ab913a",
       "IPY_MODEL_4ba963b36e8a4151bb78f03aa6fe816a",
       "IPY_MODEL_a40ed2ac9f9d4377aee61318a89696e9"
      ],
      "layout": "IPY_MODEL_163fd95495aa466780df9c8a231a8eca"
     }
    },
    "d33461ab6e5e4436b5962f102a60ee90": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "da07729441944c1b977f077652ab913a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_55b0bdc20df549108a857aefbf04d06e",
      "placeholder": "​",
      "style": "IPY_MODEL_d33461ab6e5e4436b5962f102a60ee90",
      "value": "100%"
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
